﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using System.Data;
using System.Data.SqlClient;

namespace DAO
{
    public class XeDAO
    {
        public static List<Xe> Select_Xe_by_MaTuyenDuong(String MaTuyenDuong,String Ngay)
        {
            List<Xe> list = new List<Xe>();
            String strSql = "select DISTINCT x.MaXe,BienSo from LICHCHAY lc,Xe x where x.MaXe=lc.MaXe and "
            + "lc.Ngay='"+Ngay+"' and lc.MaTuyenDuong='" + MaTuyenDuong + "'";

            try
            {
                DataTable dt = SqlDataAccessHelper.ExcuteQuery(strSql);
                foreach (DataRow dr in dt.Rows)
                {
                    Xe emp = new Xe();
                    emp.MaXe = dr["MaXe"].ToString();
                    emp.BienSo = dr["BienSo"].ToString();
                    list.Add(emp);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return list;
        }

        public static List<Xe> Select_All()
        {
            List<Xe> list = new List<Xe>();
            String strSql = "select * from Xe";

            try
            {
                DataTable dt = SqlDataAccessHelper.ExcuteQuery(strSql);
                foreach (DataRow dr in dt.Rows)
                {
                    Xe emp = new Xe();
                    emp.MaXe = dr["MaXe"].ToString();
                    emp.BienSo = dr["BienSo"].ToString();
                    list.Add(emp);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return list;
        }

        public static void CapNhatTinhTrangXeTheoSoGheConTrong(String MaXe)
        {
            String strSql = "select * from Ghe where TinhTrang='False' and MaXe='" + MaXe + "'";

            try
            {
                DataTable dt = SqlDataAccessHelper.ExcuteQuery(strSql);
                if (dt.Rows.Count == 0)//nếu ko ghế nào còn trống thì xe đã đầy
                    strSql = "update Xe set TinhTrang='True' where MaXe=@MaXe";
                else
                    strSql = "update Xe set TinhTrang='False' where MaXe=@MaXe";
                List<SqlParameter> sqlPara = new List<SqlParameter>();
                sqlPara.Add(new SqlParameter("@MaXe", MaXe));
                SqlDataAccessHelper.ExcuteNoneQuery(strSql, sqlPara);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
